package com.code.lightning.generator;

import com.code.lightning.common.exception.LightingGeneratorException;

import java.io.File;
import java.util.Map;

/**
 * 模板生成
 * @author LGX_TvT
 * @date 2021-01-17 21:29
 */
public interface TemplateGenerator {

    /**
     * 根据模板字符串生成内容
     * @param template 模板
     * @param model 模型
     * @return 生成内容
     */
    String generatorContent(String template, Map model) throws LightingGeneratorException;

    /**
     * 根据模板生成内容
     * @param source 源文件
     * @param model 模型
     * @return 生成内容
     */
    String generatorContent(File source, Map model) throws LightingGeneratorException;

    /**
     * 根据模板生成内容
     * @param template 模板字符串
     * @param target 目标文件
     * @param model 模型
     */
    void generatorContent(String template, File target, Map model) throws LightingGeneratorException;

    /**
     * 根据模板生成内容
     * @param source 源模板
     * @param target 目标模板
     * @param model 模型
     */
    void generatorContent(File source, File target, Map model) throws LightingGeneratorException;

}
